package cn.fl.capital.transform;

import cn.cmm.base.framework.utils.CollectionUtils;
import cn.cmm.base.framework.utils.StringUtils;
import cn.fl.capital.dto.CapFundVfLogDTO;
import cn.fl.capital.vo.CapFundVfLogVO;

import java.util.ArrayList;
import java.util.List;

 /**
 * @Description: 资金核销冲红记录表 转换器
 * VO是客户端传递数据到服务端进行转换的数据 
 * VO转换数据变成DTO传递到服务端 
 * VO不能在服务端出现
 */
public class CapFundVfLogVOTransform {


	/**
	 * DTO 转  VO
	 * @param dto CapFundVfLogDTO
	 * @return CapFundVfLogVO
	 */
	public static CapFundVfLogVO toVO(CapFundVfLogDTO dto) {
		CapFundVfLogVO  vo = null;
		if (dto != null) { 
			vo = new CapFundVfLogVO();
			vo.setId(dto.getId());
			vo.setFundId(dto.getFundId());//资金编号
			vo.setVfNo(dto.getVfNo());//分解单编号
			vo.setVfTypCd(dto.getVfTypCd());//核销类型：1. 核销 2.冲红
			vo.setVfUsrId(dto.getVfUsrId());//分解人编号
			vo.setVfUsrNm(dto.getVfUsrNm());//分解人名称
			vo.setVfAmt(dto.getVfAmt());//分解总金额
			vo.setVfTm(dto.getVfTm());//分解操作时间
			vo.setVfWayCd(dto.getVfWayCd());//核销方式 0.手动核销 1.自动核销
			vo.setVfDecomNo(dto.getVfDecomNo());//冲红分解单编号
			vo.setProcessIntNo(dto.getProcessIntNo());//PROCESS_INT_NO
			vo.setProcessIntId(dto.getProcessIntId());//流程实例ID
			vo.setVfStsCd(dto.getVfStsCd());//VF_STS_CD
			vo.setVfRem(dto.getVfRem());//冲红原因
            vo.setReduWayCd(dto.getReduWayCd());//减免方式

			vo.setCrtTm(dto.getCrtTm());//创建时间
			vo.setCrtUsrId(dto.getCrtUsrId());//创建人
			vo.setMdfTm(dto.getMdfTm());//修改时间
			vo.setMdfUsrId(dto.getMdfUsrId());//修改人

			vo.setCstId(dto.getCstId());//客户ID
			vo.setCstNm(dto.getCstNm());//客户名称
			vo.setCode(dto.getCode());//资金编码
			vo.setComeName(dto.getComeName());//来款人
			vo.setComeCode(dto.getComeCode());//来款账户
			vo.setAcceptCode(dto.getAcceptCode());//收款人
			vo.setAcceptName(dto.getAcceptName());//收款账号
			vo.setAcceptDate(dto.getAcceptDate());//到账日期
			vo.setAcceptActualDate(dto.getAcceptActualDate());//实际到账日期
			vo.setAmount(dto.getAmount());//来款金额
			vo.setFundBelongOrgCd(dto.getFundBelongOrgCd());//所属事业部
			vo.setBuOrgCd(dto.getBuOrgCd());
			vo.setFundSourcesCd(dto.getFundSourcesCd());  //资金来源

			if(StringUtils.isNotEmpty(dto.getEntryTypCd())){
				vo.setEntryTypCd(dto.getEntryTypCd());
			}
		}
		return vo;
	}

	/**
	 * VO 转 DTO
	 * @param vo CapFundVfLogVO
	 * @return CapFundVfLogDTO
	 */
	public static CapFundVfLogDTO toDTO(CapFundVfLogVO vo) {
		CapFundVfLogDTO dto = null;
		if (vo != null) {
			dto = new CapFundVfLogDTO();
			dto.setId(vo.getId());
			dto.setFundId(vo.getFundId());//资金编号
			dto.setVfNo(vo.getVfNo());//分解单编号
			dto.setVfTypCd(vo.getVfTypCd());//核销类型：1. 核销 2.冲红
			dto.setVfUsrId(vo.getVfUsrId());//分解人编号
			dto.setVfUsrNm(vo.getVfUsrNm());//分解人名称
			dto.setVfAmt(vo.getVfAmt());//分解总金额
			dto.setVfTm(vo.getVfTm());//分解操作时间
			dto.setVfWayCd(vo.getVfWayCd());//核销方式 0.手动核销 1.自动核销
			dto.setVfDecomNo(vo.getVfDecomNo());//冲红分解单编号
			dto.setProcessIntNo(vo.getProcessIntNo());//PROCESS_INT_NO
			dto.setProcessIntId(vo.getProcessIntId());//流程实例ID
			dto.setVfStsCd(vo.getVfStsCd());//VF_STS_CD
			dto.setVfRem(vo.getVfRem());//冲红原因
            dto.setReduWayCd(vo.getReduWayCd());//减免方式

			dto.setCrtTm(vo.getCrtTm());//创建时间
			dto.setCrtUsrId(vo.getCrtUsrId());//创建人
			dto.setMdfTm(vo.getMdfTm());//修改时间
			dto.setMdfUsrId(vo.getMdfUsrId());//修改人
			dto.setBuOrgCd(vo.getBuOrgCd());
			dto.setFundSourcesCd(vo.getFundSourcesCd()); // 资金来源

			if(StringUtils.isNotEmpty(vo.getEntryTypCd())){
				dto.setEntryTypCd(vo.getEntryTypCd());
			}
		}
		return dto;
	}
	
	/**
	 * DTO集合 转 VO集合
	 * @param list List<CapFundVfLog>
	 * @return List<CapFundVfLogDTO>
	 */
	public static List<CapFundVfLogVO> toVOList(List<CapFundVfLogDTO> list) {
		List<CapFundVfLogVO>  voList = new ArrayList<CapFundVfLogVO>();
		if(CollectionUtils.isNotEmpty(list)){
			for (CapFundVfLogDTO dto : list) {
				voList.add(toVO(dto));
			}
		}
		return voList;
	}
}
